import { RouteRecordRaw } from 'vue-router';

/**
 * 建议：路由 path 路径与文件夹名称相同，找文件可浏览器地址找，方便定位文件位置
 *
 * 路由meta对象参数说明
 * meta: {
 *      title:          菜单栏及 tagsView 栏、菜单搜索名称（国际化）
 *      isLink：        是否超链接菜单，开启外链条件，`1、isLink: 链接地址不为空 2、isIframe:false`
 *      isHide：        是否隐藏此路由
 *      isKeepAlive：   是否缓存组件状态
 *      isAffix：       是否固定在 tagsView 栏上
 *      isIframe：      是否内嵌窗口，开启条件，`1、isIframe:true 2、isLink：链接地址不为空`
 *      roles：         当前路由权限标识，取角色管理。控制路由显示、隐藏。超级管理员：admin 普通角色：common
 *      icon：          菜单、tagsView 图标，阿里：加 `iconfont xxx`，fontawesome：加 `fa xxx`
 * }
 */
// 扩展 RouteMeta 接口
declare module 'vue-router' {
	interface RouteMeta {
		title?: string;
		isLink?: string;
		isHide?: boolean;
		isKeepAlive?: boolean;
		isAffix?: boolean;
		isIframe?: boolean;
		roles?: string[];
		icon?: string;
	}
}
const baseMeta = {
	isHide: false,
	isKeepAlive: true,
	isAffix: true,
	isIframe: true,
	roles: ['admin', 'common'],
	icon: 'iconfont icon-neiqianshujuchucun',
};
/**
 * 定义动态路由
 * 前端添加路由，请在顶级节点的 `children 数组` 里添加
 * @description 未开启 isRequestRoutes 为 true 时使用（前端控制路由），开启时第一个顶级 children 的路由将被替换成接口请求回来的路由数据
 * @description 各字段请查看 `/@/views/system/menu/component/addMenu.vue 下的 ruleForm`
 * @returns 返回路由菜单数据
 */
export const dynamicRoutes: Array<RouteRecordRaw> = [
	{
		path: '/',
		name: '/',
		component: () => import('/@/layout/index.vue'),
		redirect: '/cockpit',
		meta: {
			isKeepAlive: true,
		},
		children: [
			{
				path: '/cockpit',
				name: 'pageCockpit',
				component: () => import('/@/layout/routerView/iframes.vue'),
				meta: {
					title: '实时数据',
					isLink: `${(window as any)['reqUrlClient']}/#/visualizingDemo2`,
					...baseMeta,
				},
			},
			{
				path: '/monitor',
				name: 'pageMonitor',
				component: () => import('/@/layout/routerView/iframes.vue'),
				meta: {
					title: '监控',
					isLink: `${(window as any)[`monitorUrl`]}`,
					...baseMeta,
				},
			},
			{
				path: '/gis',
				name: 'pageGis',
				component: () => import('/@/layout/routerView/iframes.vue'),
				meta: {
					title: 'GIS',
					isLink: `${(window as any).reqUrlClient}/#/menu/menu1/menu12/menu128`,
					...baseMeta,
				},
			},
			{
				path: '/giswarn',
				name: 'pageGiswarn',
				component: () => import('/@/layout/routerView/iframes.vue'),
				meta: {
					title: 'GISwarn',
					isLink: `${(window as any).reqUrlClient}/#/menu/menu1/menu12/menu127?type=%E9%98%B2%E7%A9%BA%E8%AD%A6%E6%8A%A5%E7%82%B9&name=`,
					...baseMeta,
				},
			},
			{
				path: '/gissusan',
				name: 'pageSusan',
				component: () => import('/@/layout/routerView/iframes.vue'),
				meta: {
					title: 'Susan',
					isLink: `${(window as any).reqUrlClient}/#/menu/menu1/menu11`,
					...baseMeta,
				},
			},
			{
				path: '/zhiban',
				name: 'pageOperation',
				component: () => import('/@/layout/routerView/iframes.vue'),
				meta: {
					title: '值班',
					isLink: `${(window as any)[`workUrl`]}`,
					...baseMeta,
				},
			},
			{
				path: '/dispatch',
				name: 'pageDispatch',
				component: () => import('/@/layout/routerView/iframes.vue'),
				meta: {
					title: '指挥调度',
					isLink: `${(window as any)[`dispatchUrl`]}`,
					...baseMeta,
				},
			},
			{
				path: '/sanwei',
				name: 'pageSanwei',
				component: () => import('/@/layout/routerView/iframes.vue'),
				meta: {
					title: '三维',
					isLink: `${(window as any)[`sanweiUrl`]}`,
					...baseMeta,
				},
			},
		],
	},
];

/**
 * 定义404、401界面
 * @link 参考：https://next.router.vuejs.org/zh/guide/essentials/history-mode.html#netlify
 */
export const notFoundAndNoPower = [
];

/**
 * 定义静态路由（默认路由）
 * 此路由不要动，前端添加路由的话，请在 `dynamicRoutes 数组` 中添加
 * @description 前端控制直接改 dynamicRoutes 中的路由，后端控制不需要修改，请求接口路由数据时，会覆盖 dynamicRoutes 第一个顶级 children 的内容（全屏，不包含 layout 中的路由出口）
 * @returns 返回路由菜单数据
 */
export const staticRoutes: Array<RouteRecordRaw> = [
];
